home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
User's Choice Windows CD
/
User's Choice Windows CD (CMS Software)(1993).iso
/
win_u_z
/
win_tech.zip
/
DM_SD40.TXT
next >
Wrap
Text File
|
1992-04-03
|
11KB
|
193 lines
----------------------------------------------------------------------------
Disk Manager and SmartDrv 4.0 - (Technical version)
----------------------------------------------------------------------------
NOTE: The information provided in this document is intended for advanced
hardware and software engineers. This level of information is not required
by most users, therefore, Ontrack Technical Support will not provide
detailed support regarding its contents.
The new SmartDrv disk cache version 4.0, which is being supplied with
Microsoft Windows version 3.1, is now compatible with all versions of
Ontrack's Disk Manager hard disk installation software or, more
specifically, our block device driver DMDRVR.BIN. This level of
compatibility exists because SmartDrv 4.0 caches at the block device level
rather than at the INT13 level as in previous versions. The SmartDrv double
buffer driver, however, still uses INT13 and there are a few problems as a
result. In almost all cases a few minor changes to your CONFIG.SYS file
will allow SmartDrv and DMDRVR.BIN to work together if you do encounter
problems.
The purpose of SmartDrv's double buffering is to provide support for SCSI
host adapters that use BUS Master DMA (channels 5, 6 and 7) for data
transfers, allowing them to be compatible with Windows 386 enhanced mode.
Without double buffer support, Windows will not load in 386 enhanced mode
when such a host adapter is detected. The incompatibility of these host
adapters with 386 enhanced mode results from the method they use when
transferring data. The term DMA, as used in this document refers to BUS
Master DMA.
When a data transfer is initiated through a SCSI host adapter, a transfer
buffer address is passed by the processor to the host adapter. The host
adapter will take control of the I/O BUS to transfer data into or out of the
buffer. At a DOS level, and even in Windows standard mode, this works fine
since the address passed is relative to physical 0000:0000. When Windows
runs in 386 enhanced mode, however, each virtual machine (VM) is located in
a different area of physical memory. All addresses used by a VM are
relative to the starting memory address of that VM, not physical 0000:0000.
Hence these 'logical' addresses are valid for that VM, but are not valid if
used as references from physical 0000:0000. The host adapter, unaware that
the address passed is not relative to physical 0000:0000, treats the address
as though it were and performs the transfer. The result is that the data
written or read by the host adapter is not valid and serious corruption
could occur. As previously indicated, Windows 3.1 will prevent this problem
by not allowing you to run in 386 enhanced mode.
SmartDrv's double buffer solves this problem by establishing a transfer
buffer in conventional memory, before Windows is loaded. This buffers
address is relative to physical 0000:0000. SmartDrv will pass the address
of this buffer to the host adapter for data transfers, then move the data
from this buffer into and out of the cache, hence the name double buffer.
This allows reliable transfers to occur in 386 enhanced mode, with only a
small amount of overhead.
SmartDrv's double buffering is not required unless a SCSI host adapter that
uses DMA is installed in your system. Windows 3.1 Setup, however, will
install double buffering any time that it can not conclusively determine
that it is not required. Such a situation occurs in a system with a drive
having more than 1024 cylinders, a condition permitted by DMDRVR.BIN and the
XBIOS.OVL INT13 overlay. As a result, double buffering may be installed
when it is not required. Double buffering is enabled when setup places the
following device statement in your CONFIG.SYS file.
DEVICE=C:\WINDOWS\SMARTDRV.EXE /DOUBLE_BUFFER
The only purpose for placing a SmartDrv device statement in your CONFIG.SYS
file is to enable double buffering. The SmartDrv cache is installed by a
separate command line in AUTOEXEC.BAT and does not require double buffering
in order for it to operate.
There are two conditions under which SmartDrv's double buffering will cause
problems when used in conjunction with DMDRVR.BIN and XBIOS.OVL. Though
they are not related, both conditions may exist on some systems and share
some common resolutions. Please be sure to read both descriptions before
making any changes to your system. The conditions are listed below along
with their respective considerations.
I. DRIVES WITH MORE THAN 1024 CYLINDERS
SmartDrv's double buffer is not compatible with XBIOS.OVL, Ontrack Disk
Manager software's over 1024 cylinder support. The incompatibility
results from the double buffer driver's operation at the INT13 level
and inability to communicate successfully with XBIOS.OVL. SmartDrv
will attempt to determine if over 1024 cylinder support is being
provided by DMDRVR.BIN and XBIOS.OVL and unload the double buffer to
avoid conflicts. Changes made to Disk Manager software version 5.10,
that SmartDrv 4.0 is unaware of, cause it not to unload in situations
where it must in order to avoid conflicts. Since double buffering is
only required for SCSI host adapters, which are not supported by
XBIOS.OVL, the solution is to enable double buffering only when a SCSI
host adapter is present, and disable it otherwise.
The following combines the possible configurations into three groups,
each with its own configuration requirements.
1) System without a SCSI host adapter.
If your computer system does not have a SCSI host adapter that
uses DMA, you do not need double buffering. In order to be
compatible with XBIOS.OVL you must remove the SmartDrv device
statement, DEVICE=C:\WINDOWS\SMARTDRV.EXE /DOUBLE_BUFFER, from
your CONFIG.SYS file. You do not have to remove the SmartDrv
device statement unless you have a drive with more than 1024
cylinders, however, it does no good to leave it in.
2) System with a SCSI host adapter but no drives with more than 1024
cylinders.
If your computer has a SCSI host adapter that uses DMA but does
not have a non-SCSI drive with more than 1024 cylinders, you need
to use double buffering. You must leave the SmartDrv device
statement in your CONFIG.SYS file. Since the presence of
DMDRVR.BIN may mask the need for double buffering, you should
modify the device statement in your CONFIG.SYS file to include a
PLUS SIGN which forces the double buffer to stay loaded. The
statement should appear as follows, be sure there is no space
before the PLUS SIGN.
DEVICE=C:\WINDOWS\SMARTDRV.EXE /DOUBLE_BUFFER+
3) System with a SCSI host adapter and a drive with more than 1024
cylinders.
If your computer has both a SCSI Host Adapter that uses DMA and a
non-SCSI drive with more than 1024 cylinders you can not use
SmartDrv's double buffer. As a result you will not be able to run
Windows in 386 enhanced mode. You must remove the SmartDrv device
statement, DEVICE=C:\WINDOWS\SMARTDRV.EXE /DOUBLE_BUFFER, from
your CONFIG.SYS file. In order to use SmartDrv's double buffer
support, and hence 386 enhanced mode, it will be necessary for you
to reconfigure your system to eliminate either the SCSI device or
the over 1024 condition. There may be other software solutions to
this problem, such as a double buffer driver from your SCSI host
adapter's manufacturer.
II. LOGICAL SECTOR SIZES GREATER THAN 512 BYTES
NOTE: DOS 4.0, 4.01 and 5.0 (and Compaq 3.31) require that all logical
sectors be 512 bytes. If you are using one of these DOS versions, the
information provided in this section is not applicable to your
configuration. The information provided below is superseded by the
considerations for DRIVES WITH MORE THAN 1024 CYLINDERS, as presented
above.
Under DOS versions 3.30 and prior, the number of logical sectors that
can exist in one partition is limited, hence the 32MB limit on
partition size. Since the number of logical sectors in the partition
cannot be increased, it is necessary to increase the logical sector
size in order to overcome the 32MB size limit. When double buffering
is enabled by a SmartDrv device statement in your CONFIG.SYS file,
SmartDrv will attempt to determine if double buffering is actually
required. If SmartDrv determines that double buffering is not
required, it will unload the double buffer. If your hard disk has
partitions with logical sector sizes greater than 512 bytes, the double
buffer will not unload successfully and DOS will display the following
message.
SECTOR SIZE TOO LARGE IN FILE SMARTDRV.EXE
This message does not indicate that the SMARTDRV.EXE file is corrupted,
however, DOS is unstable at this point and the computer will not
function correctly.
The following combines the possible configurations into two groups,
each with its own configuration requirements.
1) System without a SCSI host adapter.
If your computer does not have a SCSI host adapter that uses DMA,
you do not need double buffering. In order to be compatible with
DMDRVR.BIN's support for partitions larger than 32MB under DOS
3.30 and prior, and XBIOS.OVL, you must remove the SmartDrv device
statement, DEVICE=C:\SMARTDRV.EXE /DOUBLE_BUFFER, statement from
your CONFIG.SYS file.
2) System with a SCSI host adapter.
If your computer has a SCSI host adapter that uses DMA, you need
double buffering. In order to be compatible with DMDRVR.BIN's
support for large partitions under DOS 3.30 and prior, you should
modify the SmartDrv device statement in your CONFIG.SYS file to
include a PLUS SIGN. The PLUS SIGN forces the double buffer to
stay loaded, preventing the DOS error. The statement should
appear as follows, be sure there is no space before the PLUS SIGN.
DEVICE=C:\WINDOWS\SMARTDRV.EXE /DOUBLE_BUFFER+
The information provided above encompasses all known considerations for
using Disk Manager software in conjunction with SmartDrv 4.0. This document
will be updated as new information and solutions become available. If you
feel that you have a problem not covered in this document, or have
information on manufacturer supplied double buffer drivers, please contact
Ontrack Technical Support at (612)937-2121.
----------------------------------------------------------------------------